package com.xique.system.service.biz.service;

import com.xique.common.core.domain.R;
import com.xique.common.core.web.domain.AjaxResult;
import com.xique.system.api.dto.SystemUserDTO;
import com.xique.system.api.model.LoginSystemUser;

import java.util.List;

/**
 * @author shd
 * @create 2021/11/11 15:14
 */
public interface ISystemUserBizService {

    /**
     * 根据用户名获取用户信息
     * @author shd
     * @date 2021/11/11 15:17
     * @param userName
     * @return com.xique.system.api.domain.SysUser
     */
    R<LoginSystemUser> getSystemUserByUserName(String userName);

    /**
     * 根据用户名获取用户信息
     * @author shd
     * @date 2021/11/11 15:17
     * @param userName
     * @return com.xique.system.api.domain.SysUser
     */
    R<LoginSystemUser> getSystemUserByUserNameV1(String userName, String password);

    /**
     * 获取用户信息
     * @author shd
     * @date 2021/12/7 9:38
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult getInfo();

    /**
     * 根据用户编号获取详细信息
     * @author shd
     * @date 2021/12/9 11:34
     * @param userId
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    AjaxResult getInfo(Long userId);

    /**
     * 根据用户名获取用户私钥
     * @author shd
     * @date 2021/11/18 9:48
     * @param userName
     * @return com.xique.common.core.domain.R<java.lang.String>
     */
    R<String> getSystemUserKeyByUserName(String userName);

    /**
     * @description: 根据用户id获取同一角色下所有用户信息
     * @author: HdongSun
     * @date: 2022/8/25 13:13
     * @param: [userId]
     * @return: com.xique.common.core.domain.R<java.util.List<com.xique.system.api.dto.SystemUserDTO>>
     **/
    R<List<SystemUserDTO>> selectRoleSystemUserList(Long userId);
}
